<!DOCTYPE html>
<html lang="en">
  <head>
    <title>BufferedMessageRecorder Class Reference</title>
    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
    <meta charset='utf-8'>
    <script src="../js/jquery.min.js" defer></script>
    <script src="../js/jazzy.js" defer></script>
    
  </head>
  <body>
    <a name="//apple_ref/swift/Class/BufferedMessageRecorder" class="dashAnchor"></a>
    <a title="BufferedMessageRecorder Class Reference"></a>
    <header>
      <div class="content-wrapper">
        <p><a href="../index.html">CleanroomLogger Docs</a> (100% documented)</p>
        <p class="header-right"><a href="https://github.com/emaloney/CleanroomLogger"><img src="../img/gh.png"/>View on GitHub</a></p>
      </div>
    </header>
    <div class="content-wrapper">
      <p id="breadcrumbs">
        <a href="../index.html">CleanroomLogger Reference</a>
        <img id="carat" src="../img/carat.png" />
        BufferedMessageRecorder Class Reference
      </p>
    </div>
    <div class="content-wrapper">
      <nav class="sidebar">
        <ul class="nav-groups">
          <li class="nav-group-name">
            <a href="../Classes.html">Classes</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Classes/BasicLogConfiguration.html">BasicLogConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/BufferedLogEntryMessageRecorder.html">BufferedLogEntryMessageRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/BufferedLogEntryRecorder.html">BufferedLogEntryRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/BufferedLogRecorder.html">BufferedLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/BufferedMessageRecorder.html">BufferedMessageRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/ConcatenatingLogFormatter.html">ConcatenatingLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/ConsoleLogConfiguration.html">ConsoleLogConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/ConsoleLogConfiguration/StandardStreamsMode.html">– StandardStreamsMode</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/FieldBasedLogFormatter.html">FieldBasedLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/FieldBasedLogFormatter/Field.html">– Field</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/FileLogRecorder.html">FileLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/LogReceptacle.html">LogReceptacle</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/LogRecorderBase.html">LogRecorderBase</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/OutputStreamLogRecorder.html">OutputStreamLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/ParsableLogFormatter.html">ParsableLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/ReadableLogFormatter.html">ReadableLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/RotatingLogFileConfiguration.html">RotatingLogFileConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/RotatingLogFileRecorder.html">RotatingLogFileRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/StandardErrorLogRecorder.html">StandardErrorLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/StandardLogFormatter.html">StandardLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/StandardOutputLogRecorder.html">StandardOutputLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/StandardStreamsLogRecorder.html">StandardStreamsLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/XcodeLogConfiguration.html">XcodeLogConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/XcodeLogFormatter.html">XcodeLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/XcodeTraceLogFormatter.html">XcodeTraceLogFormatter</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="../Enums.html">Enums</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Enums/CallingThreadStyle.html">CallingThreadStyle</a>
              </li>
              <li class="nav-group-task">
                <a href="../Enums/DelimiterStyle.html">DelimiterStyle</a>
              </li>
              <li class="nav-group-task">
                <a href="../Enums/LogSeverity.html">LogSeverity</a>
              </li>
              <li class="nav-group-task">
                <a href="../Enums/OSLogTypeTranslator.html">OSLogTypeTranslator</a>
              </li>
              <li class="nav-group-task">
                <a href="../Enums/SeverityStyle.html">SeverityStyle</a>
              </li>
              <li class="nav-group-task">
                <a href="../Enums/SeverityStyle/TextRepresentation.html">– TextRepresentation</a>
              </li>
              <li class="nav-group-task">
                <a href="../Enums/TimestampStyle.html">TimestampStyle</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="../Protocols.html">Protocols</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Protocols/LogConfiguration.html">LogConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/LogFilter.html">LogFilter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/LogFormatter.html">LogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/LogRecorder.html">LogRecorder</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="../Structs.html">Structs</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Structs/CallSiteLogFormatter.html">CallSiteLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/CallingThreadLogFormatter.html">CallingThreadLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/DelimiterLogFormatter.html">DelimiterLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/LiteralLogFormatter.html">LiteralLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/Log.html">Log</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/LogChannel.html">LogChannel</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/LogEntry.html">LogEntry</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/LogEntry/Payload.html">– Payload</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/LogSeverityFilter.html">LogSeverityFilter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/OSLogRecorder.html">OSLogRecorder</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/PayloadLogFormatter.html">PayloadLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/PayloadMessageLogFormatter.html">PayloadMessageLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/PayloadTraceLogFormatter.html">PayloadTraceLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/PayloadValueLogFormatter.html">PayloadValueLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/ProcessIDLogFormatter.html">ProcessIDLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/ProcessNameLogFormatter.html">ProcessNameLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/SeverityLogFormatter.html">SeverityLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/StackFrameLogFormatter.html">StackFrameLogFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/TimestampLogFormatter.html">TimestampLogFormatter</a>
              </li>
            </ul>
          </li>
        </ul>
      </nav>
      <article class="main-content">
        <section>
          <section class="section">
            <h1>BufferedMessageRecorder</h1>
              <div class="declaration">
                <div class="language">
                  <pre class="highlight"><code><span class="n">open</span> <span class="kd">class</span> <span class="kt">BufferedMessageRecorder</span><span class="p">:</span> <span class="kt"><a href="../Classes/BufferedLogRecorder.html">BufferedLogRecorder</a></span><span class="o">&lt;</span><span class="kt">String</span><span class="o">&gt;</span></code></pre>

                </div>
              </div>
            <p>The <code>BufferedMessageRecorder</code> buffers the formatted log messages passed to
its <code>record()</code> function.</p>

          </section>
          <section class="section task-group-section">
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:15CleanroomLogger23BufferedMessageRecorderCACSayAA12LogFormatter_pG10formatters_Si11bufferLimitSo13DispatchQueueCSg5queuetcfc"></a>
                    <a name="//apple_ref/swift/Method/init(formatters:bufferLimit:queue:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:15CleanroomLogger23BufferedMessageRecorderCACSayAA12LogFormatter_pG10formatters_Si11bufferLimitSo13DispatchQueueCSg5queuetcfc">init(formatters:bufferLimit:queue:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Initializes a new <code>BufferedMessageRecorder</code>.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">formatters</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Protocols/LogFormatter.html">LogFormatter</a></span><span class="p">],</span> <span class="nv">bufferLimit</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="mi">10_000</span><span class="p">,</span> <span class="nv">queue</span><span class="p">:</span> <span class="kt">DispatchQueue</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>formatters</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>An array of <code>LogFormatter</code>s to use for formatting
log entries to be recorded by the receiver. Each formatter is consulted in
sequence, and the formatted string returned by the first formatter to
yield a non-<code>nil</code> value will be recorded. If every formatter returns <code>nil</code>,
the log entry is silently ignored and not recorded.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>bufferLimit</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>If this value is positive, it specifies the
maximum number of items to store in the buffer. If <code>record()</code> is called
when the buffer limit has been reached, the oldest item in the buffer will
be dropped. If this value is zero or negative, no limit will be applied.
Note that this is potentially dangerous in production code, since memory
consumption will grow endlessly unless you manually clear the buffer
periodically.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>queue</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The <code>DispatchQueue</code> to use for the recorder. If <code>nil</code>,
a new queue will be created.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
          </section>
        </section>
        <section id="footer">
          <p>© 2015-2017 <a class="link" href="http://tech.gilt.com/" target="_blank" rel="external">Gilt Groupe</a></p>
          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.8.3</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
        </section>
      </article>
    </div>
  </body>
</div>
</html>
